package File_IO;
import java.io.File;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-02-07
 * Time: 17:38
 */
public class IODemo7 {
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        // 让用户输入一个指定得搜索目录
        //Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要搜索得路径： ");
        String basePath = scanner.next();

        // 创建一个文件对象
        File root = new File(basePath);

        if(!root.isDirectory()) {
            System.out.println("输入搜索路径有误, 请重新输入！");
            return;
        }

        // 用户输入删除得文件名
        System.out.println("请输入需要删除得文件名称： ");
        String deleate_name = scanner.next();
        // 在控制台中输入scanner，Line（）-- 读到空白符（空格 换行等）就结束了不好控制
        // 文件中nextLine（） 好控制一些

        // 递归针对指定路径扫描
        // 1. 搜索根目录
        seaDir(root, deleate_name);
        // 2. 搜索根目录下得子目录
    }

    private static void seaDir(File root, String deleate_name) {
        File[] files = root.listFiles(); // 列出root下得子目录存在files数组中
        if(files == null) {
            // 当前目录没有子文件为空目录
            System.out.println("当前目录为空，无可删除子文件！");
            return;
        }

        // 遍历结果
        for (File file:files) {
            if(file.isDirectory()) {
                // 该文件为目录， 可能存在子文件，继续递归
                seaDir(file, deleate_name);
            }else {
                // 该文件不是目录， 为子文件
                if(file.getName().contains(deleate_name)) {
                    // 要搜索得目录底下包含该删除得文件
                    System.out.println("是否确认删除 " + file.getAbsolutePath() + " ?");
                    // getAbouslutePath -- 以字符串得形式返回绝对路径名称
                    String choise = scanner.next();
                    if(choise.equals("Y") || choise.equals("y")) {
                        file.delete();
                        System.out.println("删除成功！");
                        break;
                    }else  {
                        System.out.println("取消删除！");
                        break;
                    }
                }else {
                    System.out.println("该路径下无此文件！");
                    break;
                }
            }
        }
    }
}
